package com.vv.unifydemo.controller;

import com.vv.oss.OssService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.util.Map;

@RestController
@RequestMapping("/api/oss")
public class OssUploadController {

    @Autowired
    private OssService ossService;

    /**
     * 上传文件到OSS
     *
     * @param file       上传的文件
     * @param bucketName OSS存储桶名称
     * @return 包含文件URL等信息的Map
     */
    @PostMapping("/upload")
    public Map<String, String> uploadFile(@RequestParam("file") MultipartFile file,
                                          @RequestParam(value = "bucketName", required = false) String bucketName) {
        // 如果未指定bucketName，使用配置文件中的默认值
        if (bucketName == null || bucketName.isEmpty()) {
            bucketName = "default-bucket-name"; // 这里应替换为配置中的默认值
        }

        return ossService.uploadFile(file, bucketName, file.getName());
    }

    /**
     * 从OSS删除文件
     *
     * @param objectName OSS中的对象名称
     * @param bucketName OSS存储桶名称
     * @return 删除结果
     */
    @DeleteMapping("/delete")
    public boolean deleteFile(@RequestParam("objectName") String objectName,
                              @RequestParam(value = "bucketName", required = false) String bucketName) {
        // 如果未指定bucketName，使用配置文件中的默认值
        if (bucketName == null || bucketName.isEmpty()) {
            bucketName = "default-bucket-name"; // 这里应替换为配置中的默认值
        }

        return ossService.deleteFile(objectName, bucketName);
    }
}
    